Traditional data centers tend to run a single operating system instance and a single business application on one physical server. This “one server, one appliance” model leads to extremely poor resource utilization. For example, it is not uncommon for a significant portion of data center resources to be unused for a majority of the data center's “up” time. Wasted resources include CPU, RAM, Storage, and Network Bandwidth. Additionally, many traditional data centers are typically implemented by combining a heterogenous mix of different servers, operating systems, applications and data. Consequently, deploying, managing, and reconfiguring software or hardware on physical servers and the data center's network infrastructure is mostly achieved via manual (e.g., human) labor, and it typically very time consuming. Additionally, in such data centers, the upgrading of servers typically involves a relatively slow and costly process. Further, in situations where workloads grow more rapidly than expected and place heavy demands on server resources, such traditional data centers face the problem of overutilizing their servers, which may result in business continuity being placed at risk.